package Domain;

import java.util.ArrayList;
import java.util.List;

import org.uqbar.commons.utils.Observable;

@Observable
public class Tienda {

	// precondición: no hay dos turnos con el mismo dia y pisandose

	private List<Empleado> empleados;
	private List<Turno> listadoDeTurnos;
	// private List<Asignacion> listadoDeAsignaciones;
	private List<Compromiso> listaDeCompromisos;
	private List<Planificacion> listaPlanificaciones;

	public Tienda() {
		empleados = new ArrayList<Empleado>();
		listadoDeTurnos = new ArrayList<Turno>();
		// listadoDeAsignaciones = new ArrayList<Asignacion>();
		listaDeCompromisos = new ArrayList<Compromiso>();
	}

	public void agregarEmpleado(Empleado e) {
		this.getEmpleados().add(e);
	}

	public void eliminarEmpleado(Empleado e) {
		this.getEmpleados().remove(e);
	}

	// public List<Empleado> listadoEmpleadosDisponiblesPara(Turno t) {
	// List<Empleado> led = new ArrayList<Empleado>();
	// for (Empleado e : this.getEmpleados()) {
	// if (e.estoyDisponiblePara(t.getFechaTurno(), t.getDesdeHasta()
	// .getStart().toLocalTime(), t.getDesdeHasta().getEnd()
	// .toLocalTime())) {
	// led.add(e);
	// }
	// }
	// return led;
	// }

	// public void avisarTodosEmpleados() {
	// for (Asignacion a : this.getListadoDeAsignaciones()) {
	// a.getEmpleado().setTurnoAsignado(a.getTurno());
	// }
	// }

	// FALTA ASIGNAR EMPLEADO A PLANIFICACIÓN

	// ///////////////////////ACCESORS//////////////////////////////////////////////////////

	// public List<Asignacion> getListadoDeAsignaciones() {
	// return listadoDeAsignaciones;
	// }
	//
	// public void setListadoDeAsignaciones(List<Asignacion>
	// listadoDeAsignaciones) {
	// this.listadoDeAsignaciones = listadoDeAsignaciones;
	// }

	public List<Empleado> getEmpleados() {
		return empleados;
	}

	public void setEmpleados(List<Empleado> empleados) {
		this.empleados = empleados;
	}

	public List<Turno> getListadoDeTurnos() {
		return listadoDeTurnos;
	}

	public void setListadoDeTurnos(List<Turno> listadoDeTurnos) {
		this.listadoDeTurnos = listadoDeTurnos;
	}

	public void setListaDeCompromisos(List<Compromiso> lcom) {

		this.listaDeCompromisos = lcom;

	}

	public List<Compromiso> getListaDeCompromisos() {

		return this.listaDeCompromisos;

	}

	public List<Planificacion> getListaPlanificaciones() {
		return this.listaPlanificaciones;
	}

	public void setListaPlanificaciones(List<Planificacion> listaPlanificaciones) {
		this.listaPlanificaciones = listaPlanificaciones;
	}

	public void agregarCompromiso(Compromiso compromiso) {
		this.getListaDeCompromisos().add(compromiso);
	}
}